From 664ad68703a63118533d1e4150b15bf57d709f8b Mon Sep 17 00:00:00 2001 From: Noah Meyerhans Date: Tue, 1 Sep 2026 21:12:51 -0400 Subject: [PATCH] [PATCH] lib: xxh64: fix byte ordering bug on big-endian systems Convert from little-endian to host byte order where necessary. Background at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146449 Gbp-Pq: Name 0001-lib-xxh64-fix-byte-ordering-bug-on-big-endian-system.patch --- src/lib/xxh64.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/xxh64.c b/src/lib/xxh64.c index 1c17833..4a151bd 100644 --- a/src/lib/xxh64.c +++ b/src/lib/xxh64.c @@ -8,6 +8,8 @@ #include "lib.h" #include "xxh64.h" +#include + #define XXH64_PRIME1 UINT64_C(0x9E3779B185EBCA87) #define XXH64_PRIME2 UINT64_C(0xC2B2AE3D27D4EB4F) #define XXH64_PRIME3 UINT64_C(0x165667B19E3779F9) @@ -20,14 +22,14 @@ static inline uint64_t xxh64_read64(const void *p) { uint64_t v; memcpy(&v, p, sizeof(v)); - return v; + return le64toh(v); /* Convert from little-endian to host byte order */ } static inline uint32_t xxh64_read32(const void *p) { uint32_t v; memcpy(&v, p, sizeof(v)); - return v; + return le32toh(v); /* Convert from little-endian to host byte order */ } static uint64_t ATTR_UNSIGNED_WRAPS xxh64_round(uint64_t acc, uint64_t input) -- 2.39.5